<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/11/30/0030
 * Time: 14:17
 */

namespace app\sports_admin\service;


use app\exception\PaySetException;
use think\Exception;
use think\Request;
use app\sports_admin\model\PaySet as PaySetModel;
class PaySet
{
    /**
     * 修改支付配置信息
     * @param $type 要修改的类别
     * @param $wxMchid 微信支付商户号
     * @param $wxKey 微信支付秘钥
     * @param $aliMchid 阿里支付商户号
     * @param $aliKey 阿里支付商户号
    */
    public static function updatePaySetInfo()
    {
        $params = Request::instance()->only(['type','wx_mchid','wx_key','ali_mchid','ali_key']);
        $bool = $params['type'] == 1 ?
            self::updateWxPaySet($params['type'],$params['wx_mchid'],$params['wx_key']):
            self::updateAliPaySet($params['type'],$params['ali_mchid'],$params['ali_key']);
        if(!$bool){
            throw new Exception('服务器异常');
        }
        return true;
    }

    /**
     * 修改微信支付配置信息
     * @param $type 要修改的类别
     * @param $wxMchid 微信支付商户号
     * @param $wxKey 微信支付秘钥
    */
    public static function updateWxPaySet($type,$wxMchid,$wxKey)
    {
        $bool = PaySetModel::where('type',$type)->update(['mchid'=>$wxMchid,'key'=>$wxKey]);
        if(!$bool){
            throw new PaySetException([
                'msg'=>'微信支付配置信息修改失败',
                'errorCode'=>400
            ]);
        }
        return true;
    }
    /**
     * 修改阿里支付配置信息
     * @param $type 要修改的类别
     * @param $aliMchid 阿里支付商户号
     * @param $aliKey 阿里支付商户号
    */
    public static function updateAliPaySet($type,$aliMchid,$aliKey)
    {
        $bool = PaySetModel::where('type',$type)->update(['mchid'=>$aliMchid,'key'=>$aliKey]);
        if(!$bool){
            throw new PaySetException([
                'msg'=>'支付宝支付配置信息修改失败',
                'errorCode'=>400
            ]);
        }
        return true;
    }
}